package com.lzp.service;

import com.lzp.pojo.OrderStatus;
import com.lzp.pojo.bo.ShopcartBO;
import com.lzp.pojo.bo.SubmitOrderBO;
import com.lzp.pojo.vo.OrderVO;

import java.util.List;

/**
 * 订单业务
 *
 * @author dtyy
 * @date 2020/9/16
 */
public interface OrderService {

    /**
     * 创建订单业务处理
     *
     * @param submitOrderBO  用户提交的订单数据
     * @param shopcartBOList Redis中的购物车数据
     */
    OrderVO createOrder(SubmitOrderBO submitOrderBO, List<ShopcartBO> shopcartBOList);

    /**
     * 更新订单状态
     *
     * @param merchantOrderId 订单id
     * @param code            订单状态码
     */
    void updateOrderStatus(String merchantOrderId, Integer code);

    /**
     * 查询订单状态
     *
     * @param orderId 订单id
     * @return
     */
    OrderStatus queryOrderStatus(String orderId);

    /**
     * 定时关闭超时订单
     */
    void closeOrder();

}
